package com.shujia.wyh.day23;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

/*
        字节输入流：InputStream
        子类： FileInputStream
            1、创建字节输入流对象
            2、调用方法读取数据
            3、释放资源

       FileInputStream的构造方法：
            FileInputStream(File file)
            FileInputStream(String name)


       字节输入流对象读取数据的两种方式：
            public int read()
            public int read(byte[] b)


 */
public class FileInputStreamDemo1 {
    public static void main(String[] args) throws IOException {
        //创建字节输入流对象
//        File file = new File("out4.txt");
//        FileInputStream fis = new FileInputStream(file);
        FileInputStream fis = new FileInputStream("out4.txt");

        //调用方法读取数据
        //public int read() throws IOException从该输入流读取一个字节的数据。 如果没有输入可用，此方法将阻止。
//        System.out.println(fis.read());
//        System.out.println((char) fis.read());
//        System.out.println((char) fis.read());
//        System.out.println((char) fis.read());
        //我们发现，当文件的内容过多的时候，一个字节一个字节去读取，发现很麻烦，而且语句都是一样
        //使用循环改进，使用哪一种循环呢？
        //因为我们不知道要循环多少次才能读到文件的末尾，所以采用while循环
        //使用while循环，就得有一个循环条件
        //想一下，这个循环条件是不是就是读到了末尾就不读
        //如何使用代码表示读到文件末尾呢？如果达到文件的末尾， -1 。
        //一次读取一个字节
        int b = 0;
        while ((b=fis.read())!=-1){
//            System.out.println((char) fis.read());
            System.out.println((char) b);
        }

        //释放资源
        fis.close();



    }
}
